
# 打开文件-- 读 写 文件  -- 关闭文件
#  文件对象的方法
 # 1. open() :创建一个file 对象，默认是以只读的方式打开文件
# read(n): n表示从文件中读取的数据长度，没有传n值默认一次性读取文件中的所有内容
# write(): 指定内容写入到文件中
# close():关闭文件
#  2. 属性
# 文件名.name  返回要打开文件的文件名称，可能包含文件的具体路径
# 文件名.mode  返回要打开文件的文件名称，可能包含文件的具体路径
# 文件名.closed  监测文件是否关闭，关闭返回True



# 读写操作
# read() n表示从文件中读取的数据长度，没有传n值或者传负值默认一次性读取文件中的所有内容


# f = open("test-file.txt",encoding='utf-8',errors='ignore')
# print(f)
# # print(f.read(10))
# print(f.read().encode('utf-8'))

# readline() 读取一行数数据

# readlines() 按照行的方式把文件内容一次性读取完成，返回的是一个列表，没一行的数据就是列表的第一个元素

#
# f = open("test-file.txt",encoding='utf-8',errors='ignore')
# textf= f.readlines();
#
# print(textf)
# f.close()
# 访问模式
# r: 只读模式 默认模式，文件必须存在，不存在就好保存
# w: 只写模型，文件会先清空文件内容，再谢荣添加文件，不存在就创建新文件
# +： 表示文件同时读写某个文件
# r+: 可读写文件，文件不存在就好报错
# w+:  先写在读，文件存在就会重新编辑

# a: 追加模式，不存在就创建新文件进行写入，存在则在原有文件内容的基础上追加新的内容

# f = open("test-file.txt",encoding='utf-8',errors='ignore')
# print(f.read())
# f.write("sssssssssssssssssssssssss")
# f.close()

# 文件定位操作
# tell()  seek()
# tell() :显示文件内当前位置，即文件指针当前位置
# seek(offset,whence)： 移动文件读取指针到指定位置
# offset: 偏移量 表示要移动的字节数
# whence: 起始位置，表示移动字节的参考位置，默认0 0代表文件开头作为参考位置，
# 1表示当前位置作为参考位置，
# 2 表示将文件结尾作为参考位置

# f = open("test-file.txt",'w+',encoding='utf-8')
# f.write("sssssssssssssssssssssssss\n")
# print("第一次读取",f.read())
# pos= f.tell()
# print("光标位置",pos)
# f.seek(0,0)
# pos= f.tell()
# print("光标位置",pos)
# print("第二次读取",f.read())
# f.close()

# with open
# 代码执行完，系统自动调用f.close() ，可以省略文件关闭操作
with open("test-file.txt",'w',encoding='utf-8') as f:
    f.write("dddddddddddddd")

